/**
 * 综合实例：查询1
 * 
 * @author XiongChun
 * @since 2010-11-20
 */
Ext.onReady(function() {
	// 查询form
	var qForm = new Ext.form.FormPanel({
				region : 'north',
				margins : '3 3 3 3',
				title : '<span class="commoncss">查询条件<span>',
				collapsible : true,
				border : true,
				labelWidth : 90, // 标签宽度
				// frame : true, //是否渲染表单面板背景色
				labelAlign : 'right', // 标签对齐方式
				bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
				buttonAlign : 'center',
				height : 60,
				items : [{
					layout : 'column',
					border : false,
					items : [{
								columnWidth : .33,
								layout : 'form',
								labelWidth : 70, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [{
											fieldLabel : '项目名称',
											name : 'name',
											xtype : 'textfield', // 设置为数字输入框类型
											anchor : '100%'
										}]
							}, {
								columnWidth : .33,
								layout : 'form',
								labelWidth : 70, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [new Ext.form.RadioGroup({
											name : 'accreditat_status',
											id : 'accreditat_status',
											hideLabel : false,
											columns : 2,
											vertical : false,
											items : [{
														boxLabel : '已结项合同',
														inputValue : '1',
														name : 'accreditat_status',
														checked : true
													}, {
														boxLabel : '未结项合同',
														inputValue : '0',
														name : 'accreditat_status'
													}],
											anchor : '80%'
										})]
							}, {
								columnWidth : .33,
								layout : 'form',
								labelWidth : 70, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [new Ext.Button({
											text : '查询',
											iconCls : 'previewIcon',
											handler : function() {
												queryFinishHorizontal(qForm
														.getForm());
											}
										})]
							}]
				}]
			});
			
	var finishForm = new Ext.form.FormPanel({
		region : 'north',
		margins : '3 3 3 3',
		collapsible : false,
		border : true,
		labelWidth : 60, // 标签宽度
		fileUpload : true, // 一定要设置这个属性,否则获取不到上传对象的
		autoScroll : true,
		labelAlign : 'right', // 标签对齐方式
		bodyStyle : 'padding:5 5 0', // 表单元素和表单面板的边距
		buttonAlign : 'center',
		height : 400,
		items : [{
			xtype : 'fieldset',
			title : '结项评审信息',
			collapsible : true,
			autoHeight : true,
			items : [{
				layout : 'column',
				border : false,
				items : [{
					columnWidth : .50,
					layout : 'form',
					labelWidth : 100, // 标签宽度
					defaultType : 'textfield',
					border : false,
					items : [new Ext.form.RadioGroup({
								name : 'accreditat_status',
								fieldLabel : '结项评审状态',
								hideLabel : false,
								labelStyle : 'color:blue;',
								columns : 2,
								vertical : false,
								items : [{
											boxLabel : '评审通过',
											inputValue : '1',
											name : 'accreditat_status',
											checked : true
										}, {
											boxLabel : '评审不通过',
											inputValue : '0',
											name : 'accreditat_status'
										}],
								anchor : '80%'
							})]
					},{
						columnWidth : .50,
						layout : 'form',
						labelWidth : 100, // 标签宽度
						defaultType : 'textfield',
						border : false,
						items : [{
								fieldLabel : '结项评审专家',
								name : 'accreditat_by',
								xtype : 'textfield', // 设置为文字输入框类型
								maxLength : 128,
								allowBlank : false,
								labelStyle : 'color:blue;',
								anchor : '98%'
							}]
					}],
					anchor : '98%'
				},{
						fieldLabel : '评审意见 ',
						labelWidth : 100, // 标签宽度
						name : 'accreditat_memo',
						xtype : 'textarea',
						maxLength : 512,
						allowBlank : false,
						labelStyle : 'color:blue;',
						anchor : '97%'
				},new Ext.form.Hidden({
		                name : 'id',
		                xtype : 'textfield'
		        })],
		        anchor : '98%'
			},{
			xtype : 'fieldset',
			title : '基本信息',
			collapsible : true,
			autoHeight : true,
			items : [{
				layout : 'column',
				border : false,
				items : [{
					columnWidth : .50,
					layout : 'form',
					labelWidth : 100, // 标签宽度
					defaultType : 'textfield',
					border : false,
					items : [{
								fieldLabel : '项目名称', // 标签
								name : 'name', // name:后台根据此name属性取值
								maxLength : 512, // 可输入的最大文本长度,不区分中英文字符
								readOnly : true,
								anchor : '80%'// 宽度百分比
							},{
								fieldLabel : '负责人姓名',
								name : 'charger_name',
								xtype : 'textfield',
								readOnly : true,
								anchor : '80%'
							}, {
								fieldLabel : '开始日期',
								name : 'start_date',
								xtype : 'textfield', // 设置为文字输入框类型
								readOnly : true,
								anchor : '80%'
							}, {
								xtype : 'textfield',
								fieldLabel : '签订日期', // 标签
								name : 'order_date', // name:后台根据此name属性取值
								readOnly : true,
								anchor : '80%' // 宽度百分比
						}]
				}, {
					columnWidth : .50,
					layout : 'form',
					labelWidth : 100, // 标签宽度
					defaultType : 'textfield',
					border : false,
					items : [{
								fieldLabel : '甲方名称',
								name : 'customer',
								maxLength : 512,
								readOnly : true,
								xtype : 'textfield',
								anchor : '80%'
							}, {
								fieldLabel : '终止日期',
								xtype : 'textfield', // 设置为文字输入框类型
								name : 'end_date', // name:后台根据此name属性取值
								readOnly : true,
								anchor : '80%' // 宽度百分比
							},{
								fieldLabel : '合同编号',
								name : 'project_num',
								xtype : 'textfield', // 设置为文字输入框类型
								maxLength : 128,
								readOnly : true,
								anchor : '80%'
							}, {
								fieldLabel : '合同金额',
								name : 'amount',
								decimalPrecision : 2,// 小数精度
								xtype : 'numberfield',
								maxLength : 10,
								readOnly : true,
								anchor : '80%'
							},new Ext.form.Hidden({
		                 		name : 'id',
		                 		xtype : 'textfield'
		             		})]
				}]
			}],
			anchor : '98%'
		}
	]});

	var finishWindow = new Ext.Window({
				title : '<span class="commoncss">结项评审</span>', // 窗口标题
				layout : 'fit', // 设置窗口布局模式
				width : 810, // 窗口宽度
				height : 400, // 窗口高度
				closable : false, // 是否可关闭
				closeAction : 'hide', // 关闭策略
				collapsible : true, // 是否可收缩
				maximizable : false, // 设置是否可以最大化
				border : true, // 边框线设置
				constrain : true,
				titleCollapse : true,
				animateTarget : Ext.getBody(),
				pageY : 30, // 页面定位Y坐标
				pageX : document.body.clientWidth / 2 - 700 / 2, // 页面定位X坐标
				// 设置窗口是否可以溢出父容器
				buttonAlign : 'right',
				items : [finishForm],
				buttons : [{
							text : '保存',
							iconCls : 'acceptIcon',
							handler : function() {
								submitTheFinishForm();
							}
						}, {
							text : '重置',
							iconCls : 'tbar_synchronizeIcon',
							handler : function() {
								finishForm.getForm().reset();
							}
						}, {
							text : '关闭',
							iconCls : 'deleteIcon',
							handler : function() {
								finishWindow.hide();
							}
						}]
			});
			
	// 定义列模型
	var rownum = new Ext.grid.RowNumberer({
				header : 'NO',
				width : 28
			});
	var cm = new Ext.grid.ColumnModel([rownum, {
				header : '项目ID',
				dataIndex : 'id',
				sortable : true
			}, {
				header : '项目名称',
				dataIndex : 'name'
			}, {
				header : '学科门类',
				dataIndex : 'category_id'
			}, {
				header : '合同类别',
				dataIndex : 'project_type'
			}, {
				header : '合同金额',
				dataIndex : 'amount'
			}, {
				header : '承接单位',
				dataIndex : 'project_department'
			}, {
				header : '开始日期',
				dataIndex : 'start_date'
			}, {
				header : '终止日期',
				dataIndex : 'end_date'
			}, {
			header : '结项审核状态',
				dataIndex : 'accreditat_status_ui'
			}, {
				header : "操作",
				width : 80,
				align : 'center',
				dataIndex : 'rownum',
				renderer : function(data, cell, record, rowIndex, columnIndex,
						store) {
					if(record.data.accreditat_status == "1"){
						return "";
					}else{
						return "<INPUT type='button' value='结项'>";
					}
				}
			}]);

	/**
	 * 数据存储
	 */
	var store = new Ext.data.Store({
				// 获取数据的方式
				proxy : new Ext.data.HttpProxy({
							url : 'horizontalProject.do?reqCode=queryFinishHorizontal'
						}),
				// 数据读取器
				reader : new Ext.data.JsonReader({
							totalProperty : 'TOTALCOUNT', // 记录总数
							root : 'ROOT' // Json中的列表数据根节点
						}, [{name : 'id'}, 
							{name : 'name'}, 
							{name : 'category_id'}, 
							{name : 'project_type'},
							{name : 'project_num'},
							{name : 'charger_name'},
							{name : 'project_department'},
							{name : 'accreditat_status_ui'},
							{name : 'amount'},
							{name : 'order_date'},
							{name : 'start_date'},
							{name : 'end_date'},
							{name : 'accreditat_status'},
							{name : 'customer'}])
			});

	// 翻页排序时带上查询条件
	store.on('beforeload', function() {
				this.baseParams = qForm.getForm().getValues();
			});
	// 每页显示条数下拉选择框
	var pagesize_combo = new Ext.form.ComboBox({
				name : 'pagesize',
				triggerAction : 'all',
				mode : 'local',
				store : new Ext.data.ArrayStore({
							fields : ['value', 'text'],
							data : [[10, '10条/页'], [20, '20条/页'],
									[50, '50条/页'], [100, '100条/页'],
									[250, '250条/页'], [500, '500条/页']]
						}),
				valueField : 'value',
				displayField : 'text',
				value : '20',
				editable : false,
				width : 85
			});
	var number = parseInt(pagesize_combo.getValue());
	// 改变每页显示条数reload数据
	pagesize_combo.on("select", function(comboBox) {
				bbar.pageSize = parseInt(comboBox.getValue());
				number = parseInt(comboBox.getValue());
				store.reload({
							params : {
								start : 0,
								limit : bbar.pageSize
							}
						});
			});

	var tbar = new Ext.Toolbar({
				items : [{
							text : '全选',
							id : 'tbi_edit',
							iconCls : 'edit1Icon',
							handler : function() {
								selectAll();
							}
						}, {
							text : '全不选',
							id : 'tbi_del',
							iconCls : 'deleteIcon',
							handler : function() {
								diselectAll()
							}
						}, {
							text : '结项',
							iconCls : 'arrow_refreshIcon',
							handler : function() {
								finishSelectedHorizontal();
								store.reload();
							}
						}]
			});

	// 分页工具栏
	var bbar = new Ext.PagingToolbar({
				pageSize : number,
				store : store,
				displayInfo : true,
				displayMsg : '显示{0}条到{1}条,共{2}条',
				plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
				emptyMsg : "没有符合条件的记录",
				items : ['-', '&nbsp;&nbsp;', pagesize_combo]
			});

	// 表格实例
	var grid = new Ext.grid.GridPanel({
				region : 'center', // 和VIEWPORT布局模型对应，充当center区域布局
				margins : '3 3 3 3',
				border : false,
				// 表格面板标题,默认为粗体，我不喜欢粗体，这里设置样式将其格式为正常字体
				title : '<span class="commoncss">查询结果</span>',
				height : 400,
				autoScroll : true,
				frame : true,
				store : store, // 数据存储
				stripeRows : true, // 斑马线
				cm : cm, // 列模型
				bbar : bbar,// 分页工具栏
				//tbar : tbar,
				viewConfig : {
					// 不产横向生滚动条, 各列自动扩展自动压缩, 适用于列数比较少的情况
					forceFit : true
				},
				loadMask : {
					msg : '正在加载表格数据,请稍等...'
				}
			});
	grid.on('cellclick', function(pGrid, rowIndex, columnIndex, event) {
		var row = store.getById(store.data.items[rowIndex].id );
    	var strstatus = row.get("accreditat_status"); 
		if (columnIndex == 10  && strstatus == "0") {
			var record = grid.getSelectionModel().getSelected();
			finishForm.getForm().loadRecord(record);
			finishWindow.show();
			grid.getStore().reload();
		}
	});

	// 布局
	var viewport = new Ext.Viewport({
				layout : 'border',
				items : [qForm, grid]
			});

	// 查询表格数据
	function queryFinishHorizontal(pForm) {
		var params = pForm.getValues();
		params.start = 0;
		params.limit = bbar.pageSize;
		store.load({
					params : params
				});
	}


	function submitTheFinishForm() {
		if (!finishForm.form.isValid()) {
			return;
		}
		finishForm.form.submit({
					url : 'horizontalProject.do?reqCode=finishHorizontal',
					waitTitle : '提示',
					method : 'POST',
					waitMsg : '正在处理数据,请稍候...',
					success : function(form, action) {
						Ext.MessageBox.alert('提示', action.result.msg);
					},
					failure : function(form, action) {
						Ext.MessageBox.alert('提示', '数据保存失败');
					}
				});
	}
	
});